package cn.heima.demo;

import java.util.Comparator;
import java.util.Iterator;
import java.util.TreeSet;

public class Demo {
    public static void main(String[] args) {
        /*
        * 1:分析以下需求，并用代码实现：
	     (1)定义一个员工类Employee，包含三个属性：姓名(String name)、年龄(int age)、工资(int salary)
	     (2)创建5个对象装入TreeSet，按照工资从高到底排序输出结果(工资相同，按照年龄从低到高，工资和年龄都相同，
		    按照姓名字典顺序排列，但是不能去重(姓名、年龄、工资都相同))
		   2：分析以下需求，并用代码实现：
	    (1)定义一个TreeSet集合，然后存入6个Double类型的数据，分别是[1.1,5.2,6.3,2.5,5.2,3.3]
	    (2)不去重，然后遍历输出(从大到小)
	       分别用Comparable和Comparator两个接口对下列四位同学的成绩做降序排序，
                如果成绩一样，那在成绩排序的基础上按照年龄由小到大排序。
                姓名（String）	年龄（int）	分数（float）
                liusan	              20	90.0F
                lisi		      22	90.0F
                wangwu		      20	99.0F
                sunliu		      22	100.0F
        * */

        //method();
       // thod2();
        TreeSet<Student> ts = new TreeSet<>();
        Student stu1 = new Student("liusan",20,90.0F);
        Student stu2 = new Student("lisi",22,90.0F);
        Student stu3 = new Student("wangwu",20,99.0F);
        Student stu4 = new Student( "sunliu",22,100.0F);

        ts.add(stu1);
        ts.add(stu2);
        ts.add(stu3);
        ts.add(stu4);

        Iterator<Student> it = ts.iterator();
        while(it.hasNext()){
            Student sutdent = it.next();
            System.out.println(sutdent);
        }

    }

    private static void thod2() {
        TreeSet<Double> ts = new TreeSet<>(new Comparator<Double>() {
            @Override
            public int compare(Double o1, Double o2) {
                o2.compareTo(o1);
                return 1;
            }
        });

        ts.add(1.1);
        ts.add(5.2);
        ts.add(6.3);
        ts.add(2.5);
        ts.add(5.2);
        ts.add(3.3);

        System.out.println(ts);
    }

    private static void method() {
        TreeSet<Employee> ts = new TreeSet<>(new Comparator<Employee>() {
            @Override
            public int compare(Employee o1, Employee o2) {
                int result  = o2.getSalary()-o1.getSalary();
                    result  = result==0?o1.getAge()-o2.getAge():result;
                    result  = result==0?o1.getName().compareTo(o2.getName()):result;
                    result  = result==0?1:result;
                return result;
            }
        });


        Employee zs = new Employee("张三", 8, 7000);
        Employee ls = new Employee("李四", 14, 5000);
        Employee ww = new Employee("王五", 24, 6000);
        Employee zl = new Employee("赵六", 34, 8000);
        Employee bq = new Employee("赵六", 34, 8000);
        ts.add(zs);
        ts.add(ls);
        ts.add(ww);
        ts.add(zl);
        ts.add(bq);
        Iterator<Employee> it = ts.iterator();
        while(it.hasNext()){
            Employee employee = it.next();
            System.out.println(employee);
        }
    }
}
